// 导航守卫
import router from './router'
import store from './store'

router.beforeEach((to, from, next) => {
//   // 判断有没有token
//   if (store.getters.token) {
//     // 有token,去登入页面的话就跳到首页
//     if (to.path === '/login') {
//       // 跳到首页
//       next('/')
//     } else {
//       // 有token，不是去登入页面的话就放行
//       next()
//     }
//   } else {
//     // 未登入
//     // 收集未登入可以进的页面
// const white = ['/login', '/404']
//     // 如果是去白名单
//     if (white.indexOf(to.path) !== -1) {
//       // 放行
//       next()
//     } else {
//       // 否则跳转到登入页面
//       next('/login')
//     }
//   }

  // 第二种写法

  // 去哪里
  const url = to.path
  // 有token
  const token = store.getters.token
  // 白名单
  const white = ['/login', '/404']
  // 1 如果以登入还去登入页
  if (token && url === '/login') {
    // 的话就跳转到首页
    next('/')
  }

  // 2 如果以登入不是去登入页面
  if (token && url !== '/login') {
    // 没有用户数据就发送请求
    // 判断请求回来的用户数据有没有名字,没有名字说明请求没发送
    if (!store.getters.name) {
      store.dispatch('user/getProfile')
    }
    // 就放行
    next()
  }

  // 3 如果未登入去白名单的话
  if (!token && white.indexOf(url) !== -1) {
    // 就放行
    next()
  }

  // 4 如果未登入不是去百名单
  if (!token && white.indexOf(url) === -1) {
    // 跳转到首页
    next('/login')
  }
})
